package com.weipu.common.facade;

import java.util.ArrayList;

import com.weipu.common.facade.exception.DxException;
import com.weipu.common.facade.model.MessageModel;
import com.weipu.common.facade.model.NoticeGroupsModel;

/************************
 * @author Tony
 * @Date:2016-4-29下午2:19:15
 * @描述:消息中心相关接口
 ************************/
public interface MessageServiceProvider {
	//设置已读接口需调用的参数
	public static final int ACTIONTYPE_ALL = 3;
	public static final int ACTIONTYPE_ACTIVE_ALL = 2;
	public static final int ACTIONTYPE_SYSTEM_ALL = 1;
	public static final int ACTIONTYPE_NOTICEIDS = 4;
	/**
	 * @创建：Tony 2016-4-29下午2:23:00
	 * @描述：消息回执接口
	 * @param customerID
	 * @param token
	 * @param noticeID
	 * @return
	 * @throws DxException
	 */
	String feedBackNotice(long customerID,String token,String noticeID) throws DxException;
	
	/**
	 * @创建：Tony 2016-4-29下午2:38:23
	 * @描述：获取对应类型的消息列表
	 * @param customerID
	 * @param token
	 * @param noticeType
	 * @param pageIndex
	 * @param pageSize
	 * @return
	 * @throws DxException
	 */
	ArrayList<MessageModel> getNotices(long customerID,String token,int noticeType,int pageIndex,int pageSize) throws DxException;

	/**
	 * @创建：Tony 2016-5-3上午11:06:42
	 * @描述：设置消息为已读
	 * @param actionType
	 * 			1:设置当前用户所有系统消息为已读
	 * 			2:设置当前用户所有活动消息为已读
	 * 			3:设置当前用户所有消息为已读
	 * 			4:设置当前用户指定的NoticeIDS为已读
	 * @param noticeIDs
	 * @param customerID
	 * @param token
	 * @return
	 * @throws DxException
	 */
	boolean setNoticeRead(int actionType,ArrayList<String> noticeIDs,Long customerID,String token) throws DxException;
	
	/**
	 * @创建：Tony 2016-5-3下午2:20:23
	 * @描述：删除消息
	 * @param actionType
	 * @param noticeIDs
	 * @param customerID
	 * @param token
	 * @return
	 * @throws DxException
	 */
	boolean deleteNotices(int actionType,ArrayList<String> noticeIDs,Long customerID,String token) throws DxException;
	
	/**
	 * @创建：Tony 2016-5-4下午1:26:21
	 * @描述：获取各类型消息的最新消息及未读消息数量
	 * @param customerID
	 * @param token
	 * @return
	 * @throws DxException
	 */
	ArrayList<NoticeGroupsModel> getNoticeTypeList(long customerID,String token) throws DxException;
	/**
	 * @创建：Tony 2016-5-11上午9:57:45
	 * @描述：获取用户是否又未读消息
	 * @param customerID
	 * @return
	 * @throws DxException
	 */
	boolean getIsNotRead(long customerID) throws DxException;
}
